package cl.loso.melon.server.action;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import cl.loso.melon.server.model.AreaLVS;
import cl.loso.melon.server.model.NegocioLVS;
import cl.loso.melon.server.model.SitioLVS;
import cl.loso.melon.server.negocio.AreaLVSBO;
import cl.loso.melon.server.negocio.NegocioLVSBO;
import cl.loso.melon.server.negocio.SitioLVSBO;
import cl.loso.melon.server.persistencia.AreaLVSDAO;
import com.opensymphony.xwork2.ActionSupport;

public class AreaLVSAction extends ActionSupport {
	private static Log log = LogFactory.getLog(ItemSVLAction.class);
	private static final long serialVersionUID = 1783114341654699134L;
	private String nombre;
	private String idNegocio;
	private String idSitio;
	private String idArea;
	private AreaLVS areaLVS;
	private List<AreaLVS> areaList;
	private SitioLVS sitioLVS;
	private NegocioLVS negocioLVS;
	private boolean existeVisita;
	private boolean existeArea;

	public String obtenerArea() {
		try {
			negocioLVS = NegocioLVSBO.editarNegocioLVS(idNegocio);
			sitioLVS = SitioLVSBO.editarSitioLVS(idNegocio, idSitio);
			areaList = AreaLVSBO.obtenerAreaLVS(idNegocio, idSitio);
		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String guardarArea() {
		try {
			Date date = Calendar.getInstance().getTime();
			DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
			String today = formatter.format(date);
			if (AreaLVSBO.buscarNombre(nombre, idSitio)) {
				AreaLVSBO.guardarAreaLVS(idNegocio, idSitio, nombre, today);
				existeArea = false;
			} else {
				existeArea = true;
			}

		} catch (Exception e) {
			log.error(e);
		}

		return ActionSupport.SUCCESS;
	}

	public String editarArea() {
		try {
			areaLVS = AreaLVSBO.editarAreaLVS(idNegocio, idSitio, idArea);
		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String actualizarArea() {
		try {
			Date date = Calendar.getInstance().getTime();
			DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
			String today = formatter.format(date);

			AreaLVSBO.actualizarAreaLVS(idNegocio, idSitio, idArea, nombre,
					today);

		} catch (Exception e) {
			log.error(e);
		}

		return ActionSupport.SUCCESS;
	}

	public String borrarArea() {
		try {

			if (!AreaLVSDAO.existeVisita(idNegocio, idSitio, idArea)) {
				AreaLVSBO.borrarAreaLVS(idNegocio, idSitio, idArea);
				existeVisita = false;
			} else {
				existeVisita = true;
			}

		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getIdSitio() {
		return idSitio;
	}

	public void setIdSitio(String idSitio) {
		this.idSitio = idSitio;
	}

	public String getIdArea() {
		return idArea;
	}

	public void setIdArea(String idArea) {
		this.idArea = idArea;
	}

	public AreaLVS getAreaLVS() {
		return areaLVS;
	}

	public void setAreaLVS(AreaLVS areaLVS) {
		this.areaLVS = areaLVS;
	}

	public List<AreaLVS> getAreaList() {
		return areaList;
	}

	public void setAreaList(List<AreaLVS> areaList) {
		this.areaList = areaList;
	}

	public String getIdNegocio() {
		return idNegocio;
	}

	public void setIdNegocio(String idNegocio) {
		this.idNegocio = idNegocio;
	}

	public SitioLVS getSitioLVS() {
		return sitioLVS;
	}

	public void setSitioLVS(SitioLVS sitioLVS) {
		this.sitioLVS = sitioLVS;
	}

	public NegocioLVS getNegocioLVS() {
		return negocioLVS;
	}

	public void setNegocioLVS(NegocioLVS negocioLVS) {
		this.negocioLVS = negocioLVS;
	}

	public boolean isExisteVisita() {
		return existeVisita;
	}

	public void setExisteVisita(boolean existeVisita) {
		this.existeVisita = existeVisita;
	}

	public boolean isExisteArea() {
		return existeArea;
	}

	public void setExisteArea(boolean existeArea) {
		this.existeArea = existeArea;
	}

}
